package com.ssy.lingxi.platform.template.service.controller.adorn;

import com.ssy.lingxi.common.controller.BaseController;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.platform.template.service.model.bo.WebPlatformBO;
import com.ssy.lingxi.platform.template.service.model.dto.adorn.WebPlatformTemplateAdornDTO;
import com.ssy.lingxi.platform.template.service.model.dto.common.TemplateIdDTO;
import com.ssy.lingxi.platform.template.service.model.dto.web.RecommendDTO;
import com.ssy.lingxi.platform.template.service.model.vo.adorn.*;
import com.ssy.lingxi.platform.template.service.service.adorn.WebPlatformService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.List;

/**
 * @menu 模板装修 - WEB平台首页装修
 * @author fhj
 * @version 2.0.0
 * @date 2021/04/20
 */
@Api(tags = "模板装修 - WEB平台首页装修")
@RestController
@RequestMapping("/template/adorn/webPlatform")
public class WebPlatformController extends BaseController {

    @Resource
    private HttpServletRequest request;
    @Resource
    private WebPlatformService webPlatformService;

    /**
     * 保存WEB平台首页装修
     * @param dto 请求参数
     * @return 操作结果
     */
    @PostMapping("/save")
    public Wrapper<Void> save(@RequestBody @Valid WebPlatformTemplateAdornDTO dto) {
        return webPlatformService.save(dto, getSysUser(request));
    }

    /**
     * 获取WEB平台首页装修
     * @param dto 请求参数
     * @return 操作结果
     */
    @GetMapping("/find")
    public Wrapper<List<WebPlatformBO>> find(@Valid TemplateIdDTO dto) {
        return webPlatformService.find(dto);
    }

    /**
     * 获取商品列表
     * @param dto 请求参数
     * @return 操作结果
     */
    @GetMapping("/findGoodsList")
    public Wrapper<PageData<GoodsVO>> findGoodsList(@Valid RecommendDTO dto) {
        return webPlatformService.findGoodsList(dto);
    }

    /**
     * 获取品牌列表
     * @param dto 请求参数
     * @return 操作结果
     */
    @GetMapping("/findBrandList")
    public Wrapper<PageData<BrandVO>> findBrandList(@Valid RecommendDTO dto) {
        return webPlatformService.findBrandList(dto);
    }

    /**
     * 获取店铺列表
     * @param dto 请求参数
     * @return 操作结果
     */
    @GetMapping("/findStoreList")
    public Wrapper<PageData<StoreVO>> findStoreList(@Valid RecommendDTO dto) {
        return webPlatformService.findStoreList(dto);
    }

    /**
     * 获取物流列表
     * @param dto 请求参数
     * @return 操作结果
     */
    @GetMapping("/findLogisticsList")
    public Wrapper<PageData<LogisticsVO>> findLogisticsList(@Valid RecommendDTO dto) {
        return webPlatformService.findLogisticsList(dto);
    }

    /**
     * 获取加工列表
     * @param dto 请求参数
     * @return 操作结果
     */
    @GetMapping("/findProcessList")
    public Wrapper<PageData<ProcessVO>> findProcessList(@Valid RecommendDTO dto) {
        return webPlatformService.findProcessList(dto);
    }
}
